﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Ext.Net;
using Ent.Inscripcion.Core;
using Ent.Inscripcion.Core.Core;
namespace Ent.Inscripcion.Presentacion
{
    public partial class AdministrarDocente : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        protected void btnBuscar_Click(object sender, DirectEventArgs e)
        {
            try
            {
                var docenteCriterio = DocenteCriterio.NewDocenteCriterio();
                docenteCriterio.Identificacion = e.ExtraParams["Identificacion"];
                docenteCriterio.Nombre = e.ExtraParams["Nombre"];
                docenteCriterio.Apellido = e.ExtraParams["Apellido"];
                CargarDatos(docenteCriterio);
            }
            catch (Exception ex)
            {
                Util.RegistarLog(ex);
            }
        }

        private void CargarDatos( DocenteCriterio criterio)
        {
            stoDocentes.DataSource = DocenteLista.GetDocenteLista(criterio);
            stoDocentes.DataBind();
        }

        /// <summary>
        /// Permite manejar la accion realizada sobre un Docente
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ManejarAccion(object sender, DirectEventArgs e)
        {
            try
            {
                Guid idDocente = Guid.Parse(e.ExtraParams["Id"]);
                string opcion = e.ExtraParams["Comando"];
                var docente = Docente.GetDocente(idDocente);

                txtIdentificacion.Text = docente.Identificacion;
                txtNombres.Text = docente.Nombre;
                txtApellidos.Text = docente.Apellidos;
                txtCelular.Text = docente.Celular;
                txtDireccion.Text = docente.Direccion;
                txtEmail.Text = docente.Email;
                txtTelefono.Text = docente.Telefono;

                
                switch (opcion)
                {
                    case "Eliminar":
                        hidAccionDocente.Text = "Eliminar";
                        btnEliminar.Show();
                        btnGuardar.Hide();
                        break;
                    case "Editar":
                        hidAccionDocente.Text = "Editar";
                        btnEliminar.Hide();
                        btnGuardar.Show();
                        break;
                    default:
                        break;
                }
                hidIdDocente.Text = idDocente.ToString();
                winDocente.Show();
                e.Success = true;
            }
            catch (Exception ex)
            {
                e.Success = false;
                Util.RegistarLog(ex);
            }
        }

        public void btnEliminar_Click(object sender, DirectEventArgs e)
        {
            try
            {
                string id = e.ExtraParams["Id"];
                Guid idDocente = Guid.Parse(id);
                var docente = Docente.GetDocente(idDocente);
                docente.Delete();
                docente.Save();
                CargarDatos(DocenteCriterio.NewDocenteCriterio());
            }
            catch (Exception ex)
            {
                Util.RegistarLog(ex);
            }

        }

        protected void btnGuardar_Click(object sender, DirectEventArgs e)
        {
            try
            {
                string accion = e.ExtraParams["Accion"];
                string id = e.ExtraParams["Id"];
                var nombre = e.ExtraParams["Nombre"];
                var apellido = e.ExtraParams["Apellido"];
                var identificacion = e.ExtraParams["Identificacion"];
                var telefono = e.ExtraParams["Telefono"];
                var direccion = e.ExtraParams["Direccion"];
                var celular = e.ExtraParams["Celular"];
                var email = e.ExtraParams["Email"];
                Docente docente = null;
                if (accion == "Editar")
                    docente = Docente.GetDocente(new Guid(id));
                else
                    docente = Docente.NewDocente();
                docente.Apellidos = apellido;
                docente.Nombre = nombre;
                docente.Celular = celular;
                docente.Direccion = direccion;
                docente.Email = email;
                docente.Identificacion = identificacion;
                docente.Telefono = telefono;
                docente.Save();
                CargarDatos(DocenteCriterio.NewDocenteCriterio());
                e.Success = true;
            }
            catch (Exception ex)
            {
                e.Success = false;
                Util.RegistarLog(ex);
            }
        }
    }
}